Day4有跟大家提到for迴圈,但並非所有條件都必須用for迴圈來寫,這個時候我們就可以利用while跟do-while來撰寫
break敘述用來強制跳出迴圈,在無窮迴圈就必須配合break來跳離迴圈
continue則是用來略過此次迴圈中尚未執行的部分,直接回到迴圈頂端
while迴圈中可包含其他迴圈,變成多重迴圈
下面來看其範例
這個是只有一個的while的迴圈
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入正數數值\n");
scanf("%d",&i);
printf("\n");
while(i>1)
{
x=i*2;
i=i-1;
printf("i = %d\n\n",i);
printf("x = %d\n\n",x);
}
}
這是發生無窮迴圈的部分,我們將條件設為只要i>1就要進去執行,但i的值為3就代表一直符合條件,因此產生了無窮迴圈
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入正數數值\n");
scanf("%d",&i);
printf("\n");
while(i>1)
{
x=i*2;
printf("i = %d\n\n",i);
printf("x = %d\n\n",x);
}
}
這個是無窮迴圈但我們利用break來強制跳出迴圈
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入正數數值\n");
scanf("%d",&i);
printf("\n");
while(i>1)
{
x=i*2;
printf("i = %d\n\n",i);
printf("x = %d\n\n",x);
break;
}
}
這個是利用continue直接回到迴圈頂端,因此並未執行印出x值的這行
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入正數數值\n");
scanf("%d",&i);
printf("\n");
while(i>1)
{
x=i*2;
i=i-1;
printf("i = %d\n\n",i);
continue;
printf("x = %d\n\n",x);
}
}
do-while是在不使用breakc和continue的敘述下,至少會執行程式一次。
while的條件運算式後面規定必須出現分號,為了是幫助編譯程式判斷是while迴圈的關鍵字還是do-while迴圈的關鍵字
下面來看其範例
這個是i還符合條件因此要進去迴圈執行
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入正數數值\n");
scanf("%d",&i);
printf("\n");
do
{
x=i*2;
i=i-1;
printf("i = %d\n\n",i);
printf("x = %d\n\n",x);
}
while(i>1);
}
這個是i不符合條件,但因為do-while所以至少會執行一次
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i;
int x;
printf("請輸入正數數值\n");
scanf("%d",&i);
printf("\n");
do
{
x=i*2;
i=i-1;
printf("i = %d\n\n",i);
printf("x = %d\n\n",x);
}
while(i<1);
}
Day6就到這啦BYE~